home *** CD-ROM | disk | FTP | other *** search
/ Macworld Expo - Develope…Central & Net Innovations / Developer Central and Net Innovators (MacWorld Expo) (January 1999).iso / Developer Central / Metrowerks CodeWarrior / CodeWarrior Pro 4 Release Notes / Mac Utilities Notes / MW ZoneRanger 2.1 Notes < prev   
Encoding:
Text File  |  1998-08-29  |  6.7 KB  |  190 lines  |  [TEXT/CWIE]

  1. ========================================================================
  2. Metrowerks ZoneRanger Release Notes 
  3. ========================================================================
  4.  
  5. Version: ZoneRanger 2.1
  6. Date:    August 29, 1998 
  7. Author:  Joshua Golub
  8.  
  9.  
  10. ========================================================================
  11. New Features in This Version (2.1)
  12. ========================================================================
  13.  
  14. * Browse embedded heap zones
  15.  
  16. Version 2.1 introduces the most-requested feature for ZoneRanger:
  17. the ability to browse "embedded" heap zones, i.e. those created via
  18. InitZone. See the "Background" section below for a description of
  19. what embedded heap zones are and why an application might create them.
  20.  
  21. Note that the ability to browse embedded heap zones is only available 
  22. with the Modern Memory Manager, the memory manager used by MacOS for 
  23. PowerPC. You will not be able to browse embedded heap zones with 
  24. MacOS for 68K.
  25.  
  26. * "Heap Hierarchy" window
  27.  
  28. The "Heap List" window in previous versions of ZoneRanger has been
  29. replaced by the new "Heap Hierarchy" window. This new window will
  30. show you the actual hierarchical structure of all the heaps in the
  31. MacOS. By hierarchical, we mean that all of the various heaps
  32. (both MacOS and malloc) are structured as a tree, where each heap
  33. has 0 or more "sibling" heaps and 0 or more "child" heaps. The
  34. window is presented with a Finder-like turn-down-triangle metaphor
  35. to successively reveal the hierarchy.
  36.  
  37. * Per-heap preferences
  38.  
  39. In previous versions of ZoneRanger, the "Heap List" window contained
  40. four checkboxes:
  41.  
  42.     Open Summary
  43.     Open 1D Graphical
  44.     Open 2D Graphical
  45.     Open Histogram
  46.     
  47. These checkboxes controlled which heap views would be displayed when
  48. any heap was opened. The state of these checkboxes was not saved across
  49. launches.
  50.  
  51. In the new "Heap Hierarchy" window, each heap contains four columns
  52. representing, in order, the following heap views:
  53.  
  54.     Summary
  55.     1D Graphical
  56.     2D Graphical
  57.     Histogram
  58.     
  59. Each column contains a bullet which can be toggled on and off,
  60. indicating whether or not you want that heap view to be displayed
  61. when that heap is opened. Since each heap contains these four
  62. columns, you now have the ability to specify your view preferences
  63. on a per-heap basis. The state of these columns _will_ be saved
  64. across launches.
  65.  
  66.  
  67. ========================================================================
  68. Background
  69. ========================================================================
  70.  
  71. * What are "embedded heap zones"?
  72.  
  73. When your application is launched, the MacOS creates a single large heap 
  74. zone for you. If you want, you can allocate a locked NewHandle or NewPtr 
  75. out of this large heap zone, and then create an "embedded" heap zone out 
  76. of the handle or pointer. You can do this as many times as you want, to 
  77. create numerous embedded heaps within your application heap.
  78.  
  79. * Why would you want to do this? 
  80.  
  81. There are a variety of possible reasons. Here are two of them:
  82.  
  83. 1. Historically, the MacOS memory manager has been notoriously 
  84. inefficient when it comes to handling very large numbers of blocks 
  85. within a heap. So, if you divide the blocks among several embedded 
  86. heaps, then performance could be improved.
  87.  
  88. 2. Let's say that you wanted to allocated 100 handles or pointers, 
  89. but (for programmatic convenience) didn't want to keep track of 
  90. them once created. If you created all of them within an embedded heap 
  91. zone, then you wouldn't need to dispose all 100; you could just dispose 
  92. of the embedded heap itself.
  93.  
  94. * How does ZoneRanger support embedded heaps?
  95.  
  96. ZoneRanger supports them in that they are now listed in the 
  97. "Heap Hierarchy" window, so that you can open all of the standard heap
  98. views for them: summary, 1D and 2D graphical, and histogram. Previously,
  99. ZoneRanger didn't know about their existence, so you had no way to view
  100. them at all.
  101.  
  102. * Want more information?
  103.  
  104. See "Inside Macintosh: Memory",  page 2-86.
  105.  
  106.  
  107. ========================================================================
  108. Installation Instructions
  109. ========================================================================
  110.  
  111. * Quick Start
  112.  
  113. If you would like to demonstrate ZoneRanger's new ability to browse
  114. embedded heaps right now, but do not have embedded heaps in your own
  115. application, then perform the following steps.
  116.  
  117.   1. Launch the "LeakyApp" application that is part of the
  118.      "MW ZoneRanger 2.1" distribution.
  119.      
  120.   2. Select the "Create MacOS Heap" command from the "Leak" menu.
  121.   
  122.   3. Select the "Create Malloc Heap" command from the "Leak" menu.
  123.   
  124.   4. Launch ZoneRanger.
  125.   
  126.   5. Turn down the triangle next to the "Process Manager" heap.
  127.   
  128.   6. Turn down the triangle next to the "LeakyApp" heap.
  129.   
  130.   7. Two heaps should appear inside "LeakyApp":
  131.   
  132.          MacOS @ <address>
  133.          Malloc @ <address>
  134.          
  135.      You can now browse these heaps using any of the familiar
  136.      ZoneRanger tools.
  137.  
  138.  
  139. ========================================================================
  140. Bugs Fixed in This Version
  141. ========================================================================
  142.  
  143. * "Open" preferences are now saved
  144.  
  145. In previous versions of ZoneRanger, the state of the checkboxes in the
  146. "Heap List" window was not saved across launches. This window has been
  147. replaced with the new "Heap Hierarchy" window, which provides four
  148. corresponding (toggle-able) bullets for each heap. The state of these
  149. bullets will be saved across launches, as will the turned-down state
  150. of all heaps in the hierarchy window.
  151.  
  152.  
  153. ========================================================================
  154. Known Bugs and Incompatibilities
  155. ========================================================================
  156.  
  157. * None
  158.  
  159.  
  160. ========================================================================
  161. User Interface Changes in This Version
  162. ========================================================================
  163.  
  164. * "Heap List" window -> "Heap Hierarchy" window
  165.  
  166. The "Heap List" window, which displayed the available heaps in a single
  167. flat list, has been replaced by the "Heap Hierarchy" window, which 
  168. displays the available heaps in their native hierarchical structure.
  169.  
  170.  
  171. ========================================================================
  172. Contacting Metrowerks
  173. ========================================================================
  174.  
  175. For bug reports, technical questions, and suggestions about this
  176. release, please use the forms in the Release Notes folder on the
  177. CD, and send them to:
  178.  
  179.   support@metrowerks.com
  180.  
  181. See the CodeWarrior on the Nets document in the Release Notes folder for
  182. more contact information, including a list of Internet newsgroups, 
  183. online services, and patch and update sites.
  184.  
  185. ========================================================================
  186.  
  187. Joshua Golub
  188. Metrowerks Corporation
  189.  
  190.